package com.bdqn.util;

import java.util.List;

/**
 * Page 分页对象
 */
public class Page<T> {

    // 一页显示多少条数据
    private int pageSize = 8; // 固定的值

    // 当前显示的是第几页
    private int pageNo = 1;

    // 页面显示的总页数
    private int totalPageCount;

    // 数据库中该表的总数据量
    private int totalCount;

    // 分页数据
    private List<T> data;

    public int getPageSize() {
        return pageSize;
    }

    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }

    public int getPageNo() {
        return pageNo;
    }

    /**
     * 设置页码（进行合理性判断）
     *
     * @param pageNo
     */
    public void setPageNo(int pageNo) {
        // 判断页码不能小于零
        this.pageNo = pageNo <= 0 ? 1 : (pageNo > totalPageCount ? totalPageCount : pageNo);
    }

    public int getTotalPageCount() {
        return totalPageCount;
    }

    /**
     * 私有化设置总页数
     *
     * @param totalPageCount
     */
    private void setTotalPageCount(int totalPageCount) {
        this.totalPageCount = totalPageCount;
    }

    public int getTotalCount() {
        return totalCount;
    }

    /**
     * 通过数据库查询总数据量进行设置（同时计算总页数）
     *
     * @param totalCount
     */
    public void setTotalCount(int totalCount) {
        this.totalCount = totalCount < 0 ? 0 : totalCount; // 101
        // 在设置总数据量的时候同时计算总页数
        this.totalPageCount = this.totalCount % this.pageSize == 0 ? (this.totalCount / this.pageSize) : (this.totalCount / this.pageSize + 1); // 11
    }

    public List<T> getData() {
        return data;
    }

    public void setData(List<T> data) {
        this.data = data;
    }
}
